A machine readable data storage medium is used to store data related to a document, product, or other tangible object to which the data storage medium is embedded or attached. Examples of such storage media include radio frequency identification tags, magnetic stripes, and machine-readable graphical codes.
A graphical code is a graphical representation of information that consists of multiple code elements having different light reflective or light emissive properties. Examples of types of graphical codes include bar codes, data matrix codes, MaxiCodes, MICR text, optical character recognition text, and similarly formatted data.
Traditional data collection devices, for example data collection devices for reading graphical codes (including linear laser scanners, raster laser scanners, linear CCD imaging readers, and 2D array imaging readers) detect illumination reflected from a graphical code and generate a digital signal representative of the reflected illumination. In a linear or raster laser scanner, the digital signal is the result of digitizing a voltage signal output by a photo sensor that detects reflected laser illumination as the laser scans across a target area. In the imaging readers, the digital signal is the result of digitizing a voltage signal that represents sequential read out of pixels on the linear CCD or 2D array when an image of the target area is focus thereon.
The digital signal is provided to an embedded decoder system (e.g. a processor which executes a decoder application from firmware) which generates a decoded value. The decoder system not only decodes the digital signal, but it also drives a serial interface circuit (such as a UART) for transmitting the decoded value to a compatible serial interface circuit of a remote computer running a software application that will use the decoded value (e.g. a data collection application).
Traditional data collection devices such as RFID tag readers detect a modulated RF signal carrier emitted from the tag and generate a digital signal representative of base band data. The digital signal is provided to an embedded decoder system. Again, the decoder system not only decodes the digital signal, but it also drives a serial interface circuit for transmitting the decoded value to a compatible serial interface circuit of a remote computer running a data collection application.
In all such data collection devices, it is possible to customize the decoder firmware such that it makes format changes in the decoded value before output to the serial interface circuit. Examples of format changes that are readily implemented in customized decoder firmware include: i) adding and/or deleting prefix characters to the decoded data; and ii) adding and/or deleting suffix characters to the decoded data.
It is common for a company that is replacing existing data collection devices with new data collection devices to require that the supplier of the new data collection devices write customized decoder firmware such that the data output by the new data collection devices has the same prefix and suffix characters as data output by the existing data collection devices. This solution is more desirable than modifying legacy systems to accept data in a different format. It is also more desirable than writing, installing, and maintaining a middleware application to run in conjunction with the data collection application for the purpose of converting data to a format compatible with the legacy data collection application.
However, there are several problems associated with customizing decoder firmware. First, source code to the decoder firmware is typically proprietary to the manufacturer of the reader. As such, the end user of a reader does not have access to the source code and, if the end user desires custom firmware, the end user will contract with the data collection device manufacturer to write the customizations. This process includes the time and cost inefficiencies that typically exist when one entity specifies a requirement and contracts with another entity to implement the specified requirement. This process also includes the time and cost inefficiencies of contracting with the reader manufacturer to manage version control and otherwise maintain the customized firmware.
Portable hand held data computers also exist. A portable data computer includes, in the same housing as the data collection device, a general purpose computer system for running software applications on top of an operating system.
In one embodiment of portable data computers, the general purpose computer and the data collection device are architecturally distinct systems operating within the same hand held housing. More specifically, the data collection device is coupled to (and provides decoded values to) the general purpose computer over a serial interface such as a (UART).
In a second embodiment, the digital signal is provided to the general purpose computer system over a serial interface and decoding is performed by a software application running on the general purpose computer system.
The general purpose computer system of a portable data computer enables any company to obtain the application interfaces for the operating system and write a customized application for running thereon. It is conceivable that such an application could be middleware used to reformat decoded data to a format compatible with a legacy data collection application. This system is architecturally a middleware solution that has simply moved the middleware from a remote server to the general purpose computer system of the portable data computer.
This middleware software solution has several drawbacks. First, the cost of a portable data computer is significantly higher than the cost of a data collection device. There are additional hardware costs associating with implementing a general purpose computer in a small hand held housing and there are additional software costs associated with providing an operating system for the general purpose computer. Secondly, the size and weight of a portable data computer are greater than a data collection device.
For these reasons, what is needed is a data collection device that includes the ability to translate, format, and route decoded data in a specified format without requiring customized decoder firmware and without requiring installation of a middleware application on a portable data computer.